#ifndef SERIALTHREAD_H
#define SERIALTHREAD_H

#include <QThread>

class SerialThread : public QThread
{
    Q_OBJECT

public:
    explicit SerialThread(QObject *parent = 0);
    ~SerialThread();

    void stop(void);
    bool initSerial(QString &path, int rate, int databit, int stopbit, QString &separate, int validlen, int interval, int bufferlen);
    bool isInitOK(void);

protected:
    void run(void);

private:
    bool SerialOpenDevice(int &fd);
    bool SerialSetOpt(int fd);
    double SerialParseData(QString str);

    bool loop;

    QString serialpath;             // 串口设备地址
    int serialrate;                 // 波特率
    int serialdatabit;              // 数据位
    int serialstopbit;              // 停止位
    
    QString serialdataseparate;     // 数据分隔符
    int serialdatavalidlength;      // 数据有效长度
    int serialreadinterval;         // 数据读取间隔
    int serialbufferlength;         // 数据缓冲长度


signals:
    void Serial2UI_UpdateValueSignal(double num);
    void Serial2UI_ReportFailSignal(int status);

public slots:

private slots:

};

#endif // SERIALTHREAD_H
